Teruhiro Komaki's Diary (Archive)

タグ:Claris ID Token(2)

author
Teruhiro Komaki komaki.dev
2024年 03月 19日 火曜日
17時00分

Claris IDの更新トークンを使ってFileMaker Cloud の Claris ID Tokenを更新する

ひとつまえの投稿でも伝えた通り、Claris IDのRefresh Tokenを使って、Claris ID Tokenを更新したいので、API周りを調べていました。

curlコマンドで更新する方法がわかったので、簡易的にHTMLで公開することにしました。

Generating a Claris ID Token with FileMaker Cloud | frudens Inc.

スクリーンショット
スクリーンショット
Claris ID Tokenを生成するミニアプリのサムネイル
Claris ID Tokenを生成するミニアプリのサムネイル
author
Teruhiro Komaki komaki.dev
2024年 03月 19日 火曜日
09時00分

Claris ID Tokenの有効期限について

Refresh Tokenは、1年間有効。Claris ID Tokenは、1時間有効。

スクリーンショット
スクリーンショット

FileMaker CloudのClaris ID Tokenを更新する

Amazon Cognito User Pools の API Reference InitiateAuth に記載があります。

InitiateAuth - Amazon Cognito User Pools

以下のcurlコマンドを実行すると、Claris ID Tokenを更新することができます。

json='
{
  "ClientId": "4l9rvl4mv5es1eep1qe97cautn",
  "AuthFlow": "REFRESH_TOKEN_AUTH",
  "AuthParameters": {
    "REFRESH_TOKEN": "eyJjdHkiOiJK...",
    "DEVICE_KEY": null
  }
}'
curl 'https://cognito-idp.us-west-2.amazonaws.com/' \
  -H 'authority: cognito-idp.us-west-2.amazonaws.com' \
  -H 'content-type: application/x-amz-json-1.1' \
  -H 'x-amz-target: AWSCognitoIdentityProviderService.InitiateAuth' \
  --data-raw "${json}"

戻り値は、以下のJSONになります。

{
  "AuthenticationResult": {
    "AccessToken": "eyJraWQiOiJ6a...",
    "ExpiresIn": 3600,
    "IdToken": "eyJraWQiOiIya1...",
    "TokenType": "Bearer"
  },
  "ChallengeParameters": {}
}

FileMaker CloudのClaris ID Tokenをサインアウト(ログアウト)する

同じく、Amazon Cognito User Pools の API Reference GlobalSignOut に記載があります。

GlobalSignOut - Amazon Cognito User Pools

json='
{
  "AccessToken": "eyJraWQiOiJ6a1VrW..."
}'
curl 'https://cognito-idp.us-west-2.amazonaws.com/' \
  -H 'authority: cognito-idp.us-west-2.amazonaws.com' \
  -H 'content-type: application/x-amz-json-1.1' \
  -H 'x-amz-target: AWSCognitoIdentityProviderService.GlobalSignOut' \
  --data-raw "${json}"

戻り値は、以下のJSONになります。

{}

curlから実行できるということは…

FileMakerのURLから挿入で、実行できるということになります。

Claris ID Tokenを取得するための簡易的なアプリを作成しましたので、追って会社のブログでリリースしたいと思います。